検証: リストアのエラーパターン
概要・環境
バックアップのタイムスケジュールは以下の通り
リストア手順は概ねこれに基づく
確認方法は概ねこれに基づく
確認したいシチュエーション
色々なオプションをつけたり外したりしてリストアを失敗させ、止まったときは復旧させたい
完全2.0を使う
完全2.0を使う
完コピを使う
完コピとログを使う(ref先参照)
パターンA
使うバックアップ
完全2.0
準備
設定
結果
「上書きする」チェックをしていないのでエラーになる
わかる
パターンB
使うバックアップ
完全2.0
準備
設定
ダイアログに以下の警告
結果
table:restore情報
date dest filegroup restore_type device_name physical replace recovery restart stop_at stop_before
... test_5 PRIMARY データベース 08_20_0000~.bak test_5.mdf 指定 recovery なし NULL NULL
... test_5 PRIMARY データベース 08_20_0000~.bak test_5_1.ldf 指定 recovery なし NULL NULL
バックアップ「元」のデータベースが復元しています…になって読み書きできなくなってしまう 例えば本番環境のバックアップファイルから復元すると本番環境が止まってしまう
table:result(抜粋)
name state_desc ...
master ONLINE ...
本番環境 RESTORING ...
test_5 ONLINE ...
どういう状態になるのかわかっていない
パターンC
使うバックアップ
完コピ
準備
設定
結果
成功する
パターンD
使うバックアップ
後述
準備
設定
試行錯誤
試行錯誤その1
はじめに、SSMSでバックアップファイルを選択するとき以下のようにした
完コピ
差分3.2
ログ3.2.0~ログ3.2.23
しかしこれではファイルがすべて選択されなかった(完コピが表示されない)
試行錯誤その2
次に、完コピを適用してから差分とログを適用しようと考えた
以下のみ選択
完コピ
復元成功した
続けて以下の差分とログを選択し復元したらエラーが出た
差分3.2とログ3.2.0~ログ3.2.23
それはそう
試行錯誤その3
完コピの復元を以下の設定でやりなおした
復元成功した
もう一度以下の差分とログを選択し復元したらまたエラーが出た
差分3.2とログ3.2.0~ログ3.2.23
なんでだろう?
あ、ログチェーンが繋がっていないのにくっつけようとしたからだ
試行錯誤その4(正解)
完コピ
ログ3.1.16~ログ3.2.23
なんで…
ログチェーンを数字で見るとまったく頭が回らないけど、図で考えたらわかった
code:mmd
gantt
title Copy Onlyと差分バックアップは繋がっていない
dateFormat YYYY-MM-DD HH:mm
axisFormat %m/%d(%a)
section 完全バックアップ
完全バックアップ : done , milestone , full02 , 2023/8/20 0:00 , 0
Copy_Only(朝9時) : active , crit, milestone , copyonly01 , 2023/8/23 09:00 , 0
section 差分バックアップ
差分_月曜 : done , diff07 , after full02 , 1d
差分_火曜 : done , diff08 , after full02 , 2d
差分_水曜 : done , diff09 , after full02 , 3d
差分_木曜 : diff10 , after full02 , 4d
差分_金曜 : diff11 , after full02 , 5d
section ログバックアップ
...... : done , logryaku02 , 2023/8/20 0:00 , 78.5h
ログ_23日6時 : done , trn2306 , 2023/8/23 6:30 , 0.5h
ログ_23日7時 : done , trn2307 , 2023/8/23 7:30 , 0.5h
ログ_23日8時 : done , trn2308 , 2023/8/23 8:30 , 0.5h
ログ_23日9時 : active , crit , trn2309 , 2023/8/23 9:30 , 0.5h
ログ_23日10時 : active , crit , trn2310 , 2023/8/23 10:30 , 0.5h
ログ_23日11時 : active , crit , trn2311 , 2023/8/23 11:30 , 0.5h
ログ_23日12時 : active , crit , trn2312 , 2023/8/23 12:30 , 0.5h
ログ_23日13時 : active , crit , trn2313 , 2023/8/23 13:30 , 0.5h
ログ_23日14時 : active , crit , trn2314 , 2023/8/23 14:30 , 0.5h
ログ_23日15時 : active , crit , trn2315 , 2023/8/23 15:30 , 0.5h
...... : active , crit , logryaku03 , 2023/8/23 16:00 , 32h
自分で「Copy Onlyはベースを変えずにバックアップをとる」って書いているのに実際に直面するまで忘れてた